(font_parse_xlfd): Check DPI and AVGWIDTH properties more rigidly.
authorKenichi Handa <handa@m17n.org>
Tue, 28 Jul 2009 02:03:50 +0000 (02:03 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 28 Jul 2009 02:03:50 +0000 (02:03 +0000)
src/font.c

index 6c2311cf236d63a2da5d5620c8d70b5e5605b3b0..8292a6e0354a42601dc2df78b027fb9ac33561fa 100644 (file)
@@ -1139,7 +1139,10 @@ font_parse_xlfd (name, font)
            }
        }
 
-      ASET (font, FONT_DPI_INDEX, INTERN_FIELD (XLFD_RESY_INDEX));
+      val = INTERN_FIELD (XLFD_RESY_INDEX);
+      if (! NILP (val) && ! INTEGERP (val))
+       return -1;
+      ASET (font, FONT_DPI_INDEX, val);
       val = INTERN_FIELD (XLFD_SPACING_INDEX);
       if (! NILP (val))
        {
@@ -1151,8 +1154,10 @@ font_parse_xlfd (name, font)
       p = f[XLFD_AVGWIDTH_INDEX];
       if (*p == '~')
        p++;
-      ASET (font, FONT_AVGWIDTH_INDEX,
-           font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0));
+      val = font_intern_prop (p, f[XLFD_REGISTRY_INDEX] - 1 - p, 0);
+      if (! NILP (val) && ! INTEGERP (val))
+       return -1;
+      ASET (font, FONT_AVGWIDTH_INDEX, val);
     }
   else
     {